#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#include "personnel.h"


void saisir_personnel(personnel *p)
{
printf("donner le nom: ");
scanf("%s",p->nom);
printf("donner le prenom: ");
scanf("%s",p->prenom);
printf("donner l'id: ");
scanf("%ld",&(p->id));
printf("donner CIN: ");
scanf("%ld",&(p->cin));
printf("donner le numero de telephone: ");
scanf("%ld",&(p->numero_telephone));
printf("donner l'age: ");
scanf("%d",&(p->age));
printf("donner le sexe: ");
scanf("%s",p->sexe);
printf("donner l'etat: ");
scanf("%s",p->etat);
printf("donner la nationalité: ");
scanf("%s",p->natio);
printf("donner l'adresse: ");
scanf("%s",p->adresse);
printf("donner le groupe sanguin: ");
scanf("%s",p->g_sanguin);
}

void ajouter_fiche_personnel(char perso[], personnel p)
{
saisir_personnel(&p);

FILE *ficheperso;
ficheperso=fopen (perso,"a+" );

fprintf(ficheperso,"%s\t%s\t%ld\t%ld\t%ld\t%d\t%s\t%s\t%s\t%s\t%s\n"
,p.nom,p.prenom,p.id,p.cin,p.numero_telephone,p.age,p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin);

fclose(ficheperso);
}


void afficher_Listpersonnel(char perso[])
{
personnel p;
FILE *ficheperso;
int i=0;
ficheperso=fopen (perso,"r" );

while(fscanf(ficheperso,"%s %s %ld %ld %ld %d %s %s %s %s %s",p.nom,p.prenom,&(p.id),&(p.cin),&(p.numero_telephone),&(p.age),p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin)!= EOF)
{printf("\n%s\t%s\t%ld\t%ld\t%ld\t%d\t%s\t%s\t%s\t%s\t%s\t \n",p.nom,p.prenom,p.id,p.cin,p.numero_telephone,p.age,p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin);
	  i++;}

fclose(ficheperso);
}


void recherche_personnel_par_nom(char perso[],char nom[])
{int j;
personnel p;
FILE *ficheperso;
ficheperso= fopen("perso.txt", "r");
	j = 0;
while(fscanf(ficheperso,"%s %s %ld %ld %ld %d %s %s %s %s %s",p.nom,p.prenom,&(p.id),&(p.cin),&(p.numero_telephone),&(p.age),p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin)!= EOF)

if(strcmp(p.nom,nom) == 0)
{
printf("%s\t %s\t %ld\t %ld\t %ld\t %d\t %s\t %s\t %s\t %s\t %s\t ",p.nom,p.prenom,p.id,p.cin,p.numero_telephone,p.age,p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin);
	  j++; }
	if (j==0)
	 { printf("\n personnel introuvable"); }
fclose(ficheperso);
	}


void recherche_personnel_par_prenom(char perso[],char prenom[])
{int j;
personnel p;
FILE *ficheperso;
ficheperso= fopen("perso.txt", "r");
	j = 0;
while(fscanf(ficheperso,"%s %s %ld %ld %ld %d %s %s %s %s %s",p.nom,p.prenom,&(p.id),&(p.cin),&(p.numero_telephone),&(p.age),p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin)!= EOF)

if(strcmp(p.prenom,prenom) == 0)
{
printf("%s\t %s\t %ld\t %ld\t %ld\t %d\t %s\t %s\t %s\t %s\t %s\t ",p.nom,p.prenom,p.id,p.cin,p.numero_telephone,p.age,p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin);
	  j++; }
	if (j==0)
	 { printf("\n personnel introuvable"); }
fclose(ficheperso);
	}


void recherche_personnel_par_id(char perso[],long int id)
{int j;
personnel p;
FILE *ficheperso;
ficheperso= fopen("perso.txt", "r");
	j = 0;
while(fscanf(ficheperso,"%s %s %ld %ld %ld %d %s %s %s %s %s",p.nom,p.prenom,&(p.id),&(p.cin),&(p.numero_telephone),&(p.age),p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin)!= EOF)

if((p.id)==id)
{
printf("%s\t %s\t %ld\t %ld\t %ld\t %d\t %s\t %s\t %s\t %s\t %s\t ",p.nom,p.prenom,p.id,p.cin,p.numero_telephone,p.age,p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin);
	  j++; }
	if (j==0)
	 { printf("\n personnel introuvable"); }
fclose(ficheperso);
	}


void recherche_personnel_par_cin(char perso[],long int cin)
{int j;
personnel p;
FILE *ficheperso;
ficheperso= fopen("perso.txt", "r");
	j = 0;
while(fscanf(ficheperso,"%s %s %ld %ld %ld %d %s %s %s %s %s",p.nom,p.prenom,&(p.id),&(p.cin),&(p.numero_telephone),&(p.age),p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin)!= EOF)

if((p.cin)==cin)
{
printf("%s\t %s\t %ld\t %ld\t %ld\t %d\t %s\t %s\t %s\t %s\t %s\t ",p.nom,p.prenom,p.id,p.cin,p.numero_telephone,p.age,p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin);
	  j++; }
	if (j==0)
	 { printf("\n personnel introuvable"); }
fclose(ficheperso);
	}


void recherche_personnel_par_telephone(char perso[],long int numero_telephone)
{int j;
personnel p;
FILE *ficheperso;
ficheperso= fopen("perso.txt", "r");
	j = 0;
while(fscanf(ficheperso,"%s %s %ld %ld %ld %d %s %s %s %s %s",p.nom,p.prenom,&(p.id),&(p.cin),&(p.numero_telephone),&(p.age),p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin)!= EOF)

if((p.numero_telephone)==numero_telephone)
{
printf("%s\t %s\t %ld\t %ld\t %ld\t %d\t %s\t %s\t %s\t %s\t %s\t ",p.nom,p.prenom,p.id,p.cin,p.numero_telephone,p.age,p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin);
	  j++; }
	if (j==0)
	 { printf("\n personnel introuvable"); }
fclose(ficheperso);
	}


void recherche_personnel_par_age(char perso[],int age)
{int j;
personnel p;
FILE *ficheperso;
ficheperso= fopen("perso.txt", "r");
	j = 0;
while(fscanf(ficheperso,"%s %s %ld %ld %ld %d %s %s %s %s %s",p.nom,p.prenom,&(p.id),&(p.cin),&(p.numero_telephone),&(p.age),p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin)!= EOF)

if((p.age)==age)
{
printf("%s\t %s\t %ld\t %ld\t %ld\t %d\t %s\t %s\t %s\t %s\t %s\t ",p.nom,p.prenom,p.id,p.cin,p.numero_telephone,p.age,p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin);
	  j++; }
	if (j==0)
	 { printf("\n personnel introuvable"); }
fclose(ficheperso);
	}



void recherche_personnel_par_sexe(char perso[],char sexe[])
{int j;
personnel p;
FILE *ficheperso;
ficheperso= fopen("perso.txt", "r");
	j = 0;
while(fscanf(ficheperso,"%s %s %ld %ld %ld %d %s %s %s %s %s",p.nom,p.prenom,&(p.id),&(p.cin),&(p.numero_telephone),&(p.age),p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin)!= EOF)

if(strcmp(p.sexe,sexe) == 0)
{
printf("%s\t %s\t %ld\t %ld\t %ld\t %d\t %s\t %s\t %s\t %s\t %s\t ",p.nom,p.prenom,p.id,p.cin,p.numero_telephone,p.age,p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin);
	  j++; }
	if (j==0)
	 { printf("\n personnel introuvable"); }
fclose(ficheperso);
	}


void recherche_personnel_par_etat(char perso[],char etat[])
{int j;
personnel p;
FILE *ficheperso;
ficheperso= fopen("perso.txt", "r");
	j = 0;
while(fscanf(ficheperso,"%s %s %ld %ld %ld %d %s %s %s %s %s",p.nom,p.prenom,&(p.id),&(p.cin),&(p.numero_telephone),&(p.age),p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin)!= EOF)

if(strcmp(p.etat,etat) == 0)
{
printf("%s\t %s\t %ld\t %ld\t %ld\t %d\t %s\t %s\t %s\t %s\t %s\t ",p.nom,p.prenom,p.id,p.cin,p.numero_telephone,p.age,p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin);
	  j++; }
	if (j==0)
	 { printf("\n personnel introuvable"); }
fclose(ficheperso);
	}


void recherche_personnel_par_natio(char perso[],char natio[])
{int j;
personnel p;
FILE *ficheperso;
ficheperso= fopen("perso.txt", "r");
	j = 0;
while(fscanf(ficheperso,"%s %s %ld %ld %ld %d %s %s %s %s %s",p.nom,p.prenom,&(p.id),&(p.cin),&(p.numero_telephone),&(p.age),p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin)!= EOF)

if(strcmp(p.natio,natio) == 0)
{
printf("%s\t %s\t %ld\t %ld\t %ld\t %d\t %s\t %s\t %s\t %s\t %s\t ",p.nom,p.prenom,p.id,p.cin,p.numero_telephone,p.age,p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin);
	  j++; }
	if (j==0)
	 { printf("\n personnel introuvable"); }
fclose(ficheperso);
	}


void recherche_personnel_par_adresse(char perso[],char adresse[])
{int j;
personnel p;
FILE *ficheperso;
ficheperso= fopen("perso.txt", "r");
	j = 0;
while(fscanf(ficheperso,"%s %s %ld %ld %ld %d %s %s %s %s %s",p.nom,p.prenom,&(p.id),&(p.cin),&(p.numero_telephone),&(p.age),p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin)!= EOF)

if(strcmp(p.adresse,adresse) == 0)
{
printf("%s\t %s\t %ld\t %ld\t %ld\t %d\t %s\t %s\t %s\t %s\t %s\t ",p.nom,p.prenom,p.id,p.cin,p.numero_telephone,p.age,p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin);
	  j++; }
	if (j==0)
	 { printf("\n personnel introuvable"); }
fclose(ficheperso);
	}


void recherche_personnel_par_groupe_sanguin(char perso[],char g_sanguin[])
{int j;
personnel p;
FILE *ficheperso;
ficheperso= fopen("perso.txt", "r");
	j = 0;
while(fscanf(ficheperso,"%s %s %ld %ld %ld %d %s %s %s %s %s",p.nom,p.prenom,&(p.id),&(p.cin),&(p.numero_telephone),&(p.age),p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin)!= EOF)

if(strcmp(p.g_sanguin,g_sanguin) == 0)
{
printf("%s\t %s\t %ld\t %ld\t %ld\t %d\t %s\t %s\t %s\t %s\t %s\t ",p.nom,p.prenom,p.id,p.cin,p.numero_telephone,p.age,p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin);
	  j++; }
	if (j==0)
	 { printf("\n personnel introuvable"); }
fclose(ficheperso);
	}


int chercher(char perso[],long int id)
{
FILE *ficheperso;
ficheperso=fopen(perso,"r");
personnel p;
while (fscanf(ficheperso,"%s %s %ld %ld %ld %d %s %s %s %s %s",p.nom,p.prenom,&(p.id),&(p.cin),&(p.numero_telephone),&(p.age),p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin)!= EOF)
{
if (p.id==id)
{ fclose(ficheperso);
return 1;}
} fclose(ficheperso);
return 0;
}


void supprimer_personnel(char perso[],long int id)
{
FILE *ficheperso;
FILE*t;
if (chercher(perso,id)==1)
{
ficheperso=fopen(perso,"r");
t=fopen("temp","w");
personnel p;
while (fscanf(ficheperso,"%s %s %ld %ld %ld %d %s %s %s %s %s",p.nom,p.prenom,&(p.id),&(p.cin),&(p.numero_telephone),&(p.age),p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin)!= EOF)
{
if(id != p.id)
fprintf(t,"%s\t%s\t%ld\t%ld\t%ld\t%d\t%s\t%s\t%s\t%s\t%s\n"
,p.nom,p.prenom,p.id,p.cin,p.numero_telephone,p.age,p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin);}


fclose(ficheperso);
fclose(t);
remove(perso);
rename("temp",perso);
}
else
printf ("personnel n'existe pas");
}



void modifier_etat(char perso[],long int id,char etato[])
{
   
   FILE *ficheperso;
   FILE *po;
   if (chercher(perso,id)==1)
     {
      ficheperso=fopen("perso.txt","r");
      po=fopen("pok","w");
      personnel p;
      while (fscanf(ficheperso,"%s %s %ld %ld %ld %d %s %s %s %s %s",p.nom,p.prenom,&(p.id),&(p.cin),&(p.numero_telephone),&   (p.age),p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin)!= EOF)
        {
         if(id == p.id)
           { printf("entrer l'etat du personnel");
             scanf("%s",etato);
            
             strcpy(p.etat,etato);

             fprintf(po,"%s\t%s\t%ld\t%ld\t%ld\t%d\t%s\t%s\t%s\t%s\t%s\n ",p.nom,p.prenom,p.id,p.cin,p.numero_telephone,p.age,p.sexe,p.etat,p.natio,p.adresse,p.g_sanguin);
           }
        printf("danao\n");}

      fclose(ficheperso);
      fclose(po);
      remove(perso);
      rename("pok",perso);
     }
   else
   printf ("personnel n'existe pas");

}

